package py.cursoweb.controller;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import py.cursoweb.model.Proveedor;

public class ProveedorABM extends HttpServlet {
private static final long serialVersionUID = 1L;
    
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ProveedorABM() {
        super();
    }

	/** 
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//procesarPeticion(request, response);
		String accion = request.getParameter("accion");
		if ("get".equals(accion)) {
			ProveedorManager mgr = new ProveedorManager();
			try {
				Integer id = Integer.parseInt(request.getParameter("id"));
				request.setAttribute("proveedor", mgr.getProveedor(id));
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/jsp/proveedorMod.jsp");
			dispatcher.forward(request,response);
		} else {
			RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/jsp/proveedorABM.jsp");
			dispatcher.forward(request,response);
		}
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		procesarPeticion(request, response);
		ProveedorManager manager = new ProveedorManager();
		
		//if ("todos".equals(operacion)) {
			//mostrar lista de todos los alumnos
			try {
				request.setAttribute("listaProveedores", manager.getProveedores());
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			//llamarPagina(request,response,"/listaProveedores.jsp");
		//}
		RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/jsp/listaProveedores.jsp");
		dispatcher.forward(request,response);
	}

	protected void procesarPeticion(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String accion = request.getParameter("accion");
		Integer id = Integer.parseInt(request.getParameter("id"));
		
		Proveedor proveedor = new Proveedor();
		
		ProveedorManager mgr = new ProveedorManager();
		PrintWriter pw = response.getWriter();
		if (!"b".equals(accion)) {
			String nombre = request.getParameter("nombre");
			String direccion = request.getParameter("direccion");
			Integer telefono = Integer.parseInt(request.getParameter("telefono"));
				
			proveedor.setId(id);
			proveedor.setNombre(nombre);
			proveedor.setDireccion(direccion);
			proveedor.setTelefono(telefono);
		} else
			proveedor = mgr.getProveedor(id);		
		
		try {
			if ("a".equals(accion)) {
				mgr.saveProveedor(proveedor);
				//pw.println("PROVEEDOR GUARDADO EXITOSAMENTE!");
			}else if ("m".equals(accion)) {
				mgr.saveProveedor(proveedor);
				//pw.println("PROVEEDOR MODIFICADO EXITOSAMENTE!");
			} else if ("b".equals(accion)) {
				mgr.deleteProveedor(proveedor);
				//pw.println("PROVEEDOR ELIMINADO EXITOSAMENTE!");
			}		
			
		}catch(Exception ex) {
			pw.println("OCURRIO EL ERROR: " + ex.getClass().getName() + 
					   " - " + ex.getMessage());
		}
	}

}
